home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Compilers⁄Interps / kevoSource / portGlobal.h < prev    next >
Text File  |  1993-05-16  |  6KB  |  259 lines

  1. /* Kevo -- a prototype-based object-oriented language */
  2. /* (c) Antero Taivalsaari 1991-1993                   */
  3. /* Some parts (c) Antero Taivalsaari 1986-1988           */
  4. /* portGlobal.h: Non-portable global definitions and data areas */
  5.  
  6.  
  7. /* Select the correct machine platform here */
  8. #define MAC
  9. /* #define UNIX */
  10.  
  11.  
  12. /* Include non-portable header files */
  13.  
  14. #include "portWindows.h"
  15. #include "portBrowser.h"
  16. #include "portEdit.h"
  17. #include "portEvents.h"
  18. #include "portPrim.h"
  19.  
  20.  
  21. #ifdef UNIX
  22. /* System-dependent lowest user-readable memory location (SPARC=8192) */
  23. /* Needed only for '.rs' */
  24. /* Not needed in Mac */ 
  25. #define  LOWMEMLIMIT        8192 */
  26. #endif
  27.  
  28. /* These macros returns the lowest and highest memory addresses of the */
  29. /* application heap. The Kevo system should not normally access memory */
  30. /* addresses beyond these limits. */
  31.  
  32. /* This is the same as Mac Toolbox macro ApplicationZone() */
  33. #define  lowMemLimit        (*(int*)0x02AA)
  34.  
  35. /* This is the same as Mac Toolbox macro GetApplLimit() */
  36. #define  highMemLimit        (*(int*)0x0130)
  37.  
  38. /* This address contains the highest addressable memory location in the Mac */
  39. /* References above this location may cause a bus error */
  40. /* The same as Mac Toolbox routine TopMem() */
  41. #define  HIGHMEMLIMIT        (*(int**)0x0108)
  42.  
  43. /* Safe memory fetch operation. Masks out bus error arising from */
  44. /* references to illegal memory locations */
  45. int maskedFetch();
  46.  
  47.  
  48. /* Dialogs */
  49.  
  50. #define ABOUT_DIALOG    1
  51.  
  52.  
  53. /* Standard window size */
  54.  
  55. #define STANDARDWINDOWWIDTH        500
  56. #define STANDARDWINDOWHEIGHT    300
  57.  
  58.  
  59. /* The scroll bar width is always 16 in the Mac */
  60. #define SCROLLBARWIDTH    16
  61.  
  62.  
  63. /* Window kinds */
  64.  
  65. /* PlainWKind: no TE facilities; can be used for graphics */
  66. /* TEWKind: Mac TextEdit facilities; supports both text and graphics (text better) */
  67. /* BrowserWKind: Normal browser window */
  68. /* CloneBrWKind: Browser window for displaying clone families */
  69.  
  70. #define UnknownWKind    0
  71. #define PlainWKind        1
  72. #define TEWKind            2
  73. #define BrowserWKind    3
  74. #define CloneBrWKind    4
  75.  
  76.  
  77. /* Event loop timing variables */
  78. extern     int        nextTime;    /* Stores tick count upon entering 'EventLoop()' */
  79. extern    int        eventDelay;    /* How many ticks must go before we can invoke EventLoop again */
  80. extern    int        eventSlice;    /* How much time do we give to other Mac tasks */
  81.  
  82.  
  83. /*     Stores the last time when the event loop was invoked.
  84.     Used for avoiding the user interface from getting stuck.
  85. */
  86. extern    int        lastEventTime;
  87.  
  88.  
  89. /* These variables are used in menus to set certain modes on/off (see 'doFlags()') */
  90. extern    int        cooperativeFlag;
  91. extern    int        traceFlag;
  92.  
  93.  
  94. /* 
  95.     These variables designate the currently active task, and TE (TextEdit) 
  96.     on the screen. 
  97. */
  98. extern    TASK**        theTask;    
  99. extern    TEHandle    theText;
  100.  
  101.  
  102. /* Latest event noticed by Macintosh */
  103. extern    EventRecord    theEvent;
  104.  
  105.  
  106. /* Standard window size rectangle */
  107. extern    Rect        standardRect;
  108.  
  109.  
  110. /* Window dragging and growing limit */
  111. extern    Rect        limitRect;
  112.  
  113.  
  114. /* User interface modes */
  115. extern    int            GUIMode;
  116.  
  117. #define    GUIShell    1
  118. #define GUIBrowser    2
  119.  
  120.  
  121. /* Search modes for the browser */
  122. #define ALL         1
  123. #define DATA         2
  124. #define BEHAVIOR     3
  125.  
  126.  
  127. /* Browser variables */
  128. extern     TASK**        browserTask;    /* The browser task */
  129. extern    int         browserCount;    /* How many browsers open currently */
  130. extern    WindowPtr    LastBrowser;    /* The latest opened browser in the system */
  131.  
  132.  
  133. /* Icon list management variables */
  134. extern    int            MaskedPairs;    /* How many pairs is there in the current object */
  135. extern    int            AnonymousSlots;    /* How many anonymous (array) slots - " - */
  136. extern    int            CellsInTotal;    /* How many cells/icons in total in current browser */
  137.  
  138.  
  139. /* Icon list management constants */
  140.  
  141. #define ICONCELLHEIGHT    18
  142. #define ICONLINELENGTH    480
  143.  
  144.  
  145. /* Information for CUTting, COPYing, and PASTEin pairs from one browser to another */
  146. extern    LIST*        ClipList;            /* Stores the pairs */
  147. extern    OBJECT*        ClipObject;         /* Stores the owner of the pairs */
  148. extern    CONTEXT*    ClipContext;        /* Original (unmodified) context of the source object */
  149. extern    int            ClipMode;            /* Clipping mode (see below) */
  150.  
  151.  
  152. /* Modification menu flag fields */
  153. extern    int         whoToModify;        /* Editing only one object or the whole clone family? */
  154.  
  155.  
  156. /* Clipping modes */
  157. #define    CLIP_CUT     1
  158. #define CLIP_COPY     2
  159.  
  160.  
  161. /* The global menus */
  162. extern    MenuHandle    appleMenu;
  163. extern    MenuHandle     fileMenu;
  164. extern  MenuHandle    windowMenu;
  165.  
  166.  
  167. /* Shell-specific menus */
  168. extern    MenuHandle    edit1Menu;
  169. extern    MenuHandle    tasksMenu;
  170. extern    MenuHandle    multitaskMenu;
  171. extern    MenuHandle    debugMenu;
  172.  
  173.  
  174. /* Browser-specific menus */
  175. extern    MenuHandle    edit2Menu;
  176. extern    MenuHandle    viewMenu;
  177. extern    MenuHandle    toolsMenu;
  178.  
  179.  
  180. /* Menu definitions (see the resource file) */
  181.  
  182. #define APPLE_MENU 1
  183. #define    FILE_MENU 2
  184. #define    EDIT1_MENU 3
  185.  
  186. #define TASKS_MENU 5
  187. #define MULTITASK_MENU 6
  188. #define DEBUG_MENU 7
  189.  
  190. #define EDIT2_MENU 13
  191. #define VIEW_MENU 14
  192. #define TOOLS_MENU 15
  193.  
  194. #define WINDOW_MENU 100
  195.  
  196.  
  197. /* Menuitem definitions (see the resource file) */
  198.  
  199. #define NEW_TASK_MENUITEM 1
  200. #define NEW_SCRIPT_MENUITEM 2
  201. #define SAVE_IMAGE_MENUITEM 4
  202. #define QUIT_MENUITEM 6
  203.  
  204. #define BROWSE_MENUITEM 1
  205. #define UNDO_MENUITEM 1
  206. #define CUT_MENUITEM 3
  207. #define COPY_MENUITEM 4 
  208. #define PASTE_MENUITEM 5
  209. #define CLEAR_MENUITEM 6
  210. #define SELECT_ALL_MENUITEM 8
  211. #define MKDIR_MENUITEM 10
  212. #define ADD_VAR_MENUITEM 11
  213. #define ADD_SHAREDVAR_MENUITEM 12
  214. #define ADD_METHOD_MENUITEM 13
  215. #define HIDE_SHOW_MENUITEM 15
  216. #define THIS_ONLY_MENUITEM 17
  217. #define WHOLE_FAMILY_MENUITEM 18
  218. #define DERIVATIVES_MENUITEM 19
  219.  
  220. #define CANCEL_MENUITEM 1
  221. #define SUSPEND_MENUITEM 3
  222. #define ACTIVATE_MENUITEM 4
  223. #define LOWER_PR_MENUITEM 6
  224. #define HIGHER_PR_MENUITEM 7
  225.  
  226. #define PREEMPTIVE_MENUITEM 1 
  227. #define COOPERATIVE_MENUITEM 2
  228. #define MON_MOFF_MENUITEM 4
  229. #define RESET_MENUITEM 6
  230.  
  231. #define NOTRACE_MENUITEM 1
  232. #define TRACE_MENUITEM 2
  233. #define FULLTRACE_MENUITEM 3
  234. #define SET_BREAK_MENUITEM 5 
  235. #define REMOVE_BREAK_MENUITEM 6
  236. #define RESUME_MENUITEM 7
  237.  
  238. #define VIEW_OPER_MENUITEM 1
  239. #define VIEW_DATA_MENUITEM 2
  240. #define VIEW_BOTH_MENUITEM 3
  241. #define ONE_COLUMN_MENUITEM 5
  242. #define FOUR_COLUMNS_MENUITEM 6
  243. #define SHOW_ROOT_MENUITEM 8
  244. #define SHOW_CLONEF_MENUITEM 9
  245. #define SHOW_PARENTF_MENUITEM 10
  246. #define SHOW_CHILDF_MENUITEM 11
  247. #define UPDATE_MENUITEM 13
  248.  
  249. #define CLONE_MENUITEM 1
  250. #define NEW_MENUITEM 2
  251. #define SHARE_MENUITEM 3
  252. #define ASSIGN_MENUITEM 5
  253. #define OPEN_SHELL_MENUITEM 6
  254.  
  255. #define HIDE_WINDOW_MENUITEM 1
  256. #define MOVE_BEHIND_MENUITEM 2
  257. #define CLOSE_BROWSERS_MENUITEM 4
  258.  
  259.